package com.sss.portalrimac.fake;

import java.util.Iterator;
import java.util.List;

import com.sss.portalrimac.domain.Cliente;
import com.sss.portalrimac.infraestructure.ldap.ClienteLdap;

public class ClienteLdapFake implements ClienteLdap{

	public static List<Cliente> clientes;
	
	public ClienteLdapFake(){
		clientes=obtenerLista();
	}
	
	private List<Cliente> obtenerLista() {
		if(clientes==null){
			clientes = new ClienteMockFactory().clientes;
		}
		return clientes;
	}

	public Cliente getClienteActual() throws Exception {
		return clientes.get(0);
	}

	public Cliente obtenerClienteByAtributo(String atributo,
			String valorAtributo) throws Exception {
		Iterator<Cliente> iter = clientes.iterator();
		while (iter.hasNext()){
		  Cliente cliente=iter.next();
		  if(cliente.getNumeroDocumento().compareTo(valorAtributo)==0){
			  return cliente;
		  }
		}
		return null;
	}

	public void update(Cliente cliente) throws Exception {
		Iterator<Cliente> iter = clientes.iterator();
		while (iter.hasNext()){
		  Cliente clienteAntiguo=iter.next();
		  if(clienteAntiguo.getNumeroDocumento().compareTo(cliente.getNumeroDocumento())==0){
			  clienteAntiguo.setContrasena(cliente.getContrasena());
			  clienteAntiguo.setCorreoElectronico(cliente.getCorreoElectronico());
			  clienteAntiguo.setTelefonoMovil(cliente.getTelefonoMovil());
			  clienteAntiguo.setTelefonoFijo(cliente.getTelefonoFijo());
			  clienteAntiguo.cambiarPreguntaYRespuesta(cliente.getPreguntaSeguridad(), cliente.getRespuestaSeguridad());
			  clienteAntiguo.setFechaNacimiento(cliente.getFechaNacimiento());
			  clienteAntiguo.setDebeCambiarContrasena(cliente.getDebeCambiarContrasena());
			  clienteAntiguo.setEstado(cliente.getEstado());
		  }
		}
	}

	public void create(Cliente cliente) throws Exception {
		// TODO Auto-generated method stub
		
	}

}
